package it.patterns.behavioral.memento;

/**
 * Without violating encapsulation, capture and externalize an object's internal
 * state so that the object can be restored to this state later.
 * 
 * Memento are passive: only originator that created a memento will assign or
 * retrieve its state.
 * 
 * Consequences:
 * <ul>
 * <li>Preserving encapsulation boundaries</li>
 * <li>Using mementos might be expensive</li>
 * </ul>
 * 
 * 
 * <img src="Memento.jpg" alt="Pattern Structure"/>
 * 
 * @author Luca D'Onofrio
 * 
 * @category Behavioral Pattern
 * @see "Design Patterns - Element of Reusable Object Oriented Software (Gamma,Helm, Johnson, Vlissides)"
 * 
 * @version 1.0
 * 
 */
public interface Memento {
	public void restoreState();
}
